// module.exports = function(source){
//   console.log(source)
//   source += 'console.log("哈哈哈")'
//   return source
// }

// 把JS 解析成 ast语法树   @babel/parser
const parser = require('@babel/parser');

//增删改 我们ast节点 
const types = require('@babel/types');

// 遍历  我们 的ast节点
const traverse = require('@babel/traverse').default


// 把ast语法树 转成 字符串
const generator  = require('@babel/generator').default;
module.exports = function(source){
  let ast = parser.parse(source,{sourceType:'module'})
  // console.log(ast.program.body)
  //遍历语法树  找到console语法 然后删除
  traverse(ast,{
    CallExpression(path){
      // console.log(path)
      if(types.isMemberExpression(path.node.callee) && types.isIdentifier(path.node.callee.object,{name:'console'})){
        path.remove()
      }
    }
  })
  // 把修改之后的ast再转成 buffer或者字符串
  const output = generator(ast,{},source)
  console.log(output)
  return output.code
}